package main

import (
	"log"
	"prometheus_import_consul/core"
	myflags "prometheus_import_consul/flag"
	"prometheus_import_consul/global"
	"prometheus_import_consul/service"
	"prometheus_import_consul/tools"
)

func main() {
	// 解析命令行参数
	cmdFlags := myflags.Parse()

	//读取配置文件
	core.InitConf()

	// 初始化Consul
	if consulClient, err := core.ConsulConnect(); err != nil {
		log.Fatalf("consul connect failed: %v", err)
		return
	} else {
		// 将初始化的客户端实例赋值给global.ConsulClient，以便全局使用
		global.ConsulClient = consulClient
		log.Println("consul connect success")
	}

	//执行execl转json文件
	tools.ProcessExcelFiles(cmdFlags)

	//注册全部service到consul
	if cmdFlags.RegisterServices {
		service.ServiceTCP()
		service.Host()
		service.Icmp()
		//service.Telegraf()
		service.ImportServiceURLs()
	}

	// 根据命令行参数决定是否执行 Host 函数
	if cmdFlags.RegisterHost {
		service.Host()
	}
	// 根据命令行参数决定是否执行 Icmp 函数
	if cmdFlags.RegisterIcmp {
		service.Icmp()
	}
	// 根据命令行参数决定是否执行 Telegraf 函数
	//if cmdFlags.RegisterTelegraf {
	//	service.Telegraf()
	//}
	// 根据命令行参数决定是否执行 ImportServiceURLs 函数
	if cmdFlags.RegisterInterface {
		service.ImportServiceURLs()
	}
	// 根据命令行参数决定是否执行 ServiceTCP 函数
	if cmdFlags.RegisterService {
		service.ServiceTCP()
	}
}
